<?php

namespace app\admin\controller;

use think\Controller;
use think\Db;
use think\Request;

class Permission extends Controller
{
    /**
     * 显示资源列表
     *
     * \think\Response
     */
    public function index()
    {
        $data = Db::name('node')
//            ->where('banner_id','=',$id)
//            ->field(['pid'])
            ->select();
        $count = Db::name('node')->count('id');
//        dump($count);
//        exit;
        return view('adminpermission/index', ['data' => $data, 'count' => $count]);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        $first['title'] = '第一级';
        $first['pid'] = 0;
        $first['id'] = 0;
        $data = Db::name('node')
//            ->column('title', 'pid');
            ->field(['title', 'pid', 'id'])
            ->select();
        array_push($data, $first);
//        dump($data);exit;
        return view('adminpermission/create', ['data' => $data]);
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        $p = $request->post();
//        dump($p);exit;
        if ($p['status'] === 'on') {
            $p['status'] = 1;
        } else {
            $p['status'] = 0;
        }
        if (empty($p['name']) ){
            return $this->error('节点名称必填');
        }
        if (empty($p['title']) ){
            return $this->error('节点标题必填');
        }

        $res = Db::name('node')
            ->where('pid', '=', 0)
            ->column('name');
//        dump($p['name']);exit;
//        dump($res);exit;
        $data = [
            'title' => $p['title'],
            'name' => $p['name'],
            'status' => $p['status'],
            'pid' => $p['pid']
        ];
//        dump($data);exit;
        if (!in_array($p['name'], $res)) {
            $result = Db::name("node")->data($data)->insert();
            if ($result > 0) {
                // var_dump($data);
                // 执行添加
                return $this->success('添加成功', url('admin/Permission/index'));
            } else {
                return $this->error('添加失败');
            }
        } else {
            return $this->error('添加失败');
        }


    }

    /**
     * 显示指定的资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int $id
     * @return \think\Response
     */
    public function edit($id)
    {
        $first['title'] = '第一级';
        $first['pid'] = 0;
        $first['id'] = 0;
        $res = Db::name('node')
//            ->column('title', 'pid');
            ->field(['title', 'pid', 'id'])
            ->select();
        array_push($res, $first);
        $data = Db::name('node')
            ->where('id', '=', $id)
//            ->field(['pid'])
            ->find();
//        dump($res);die;
//        dump($data);die;
        return view('adminpermission/edit', ['data' => $data, 'res' => $res]);
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request $request
     * @param  int $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        $p = $request->put();
//        dump($p);die;
        if ($p['status'] === 'on') {
            $p['status'] = 1;
        } else {
            $p['status'] = 0;
        }

        $res = Db::name('node')
            ->where('pid', '=', 0)
            ->column('name');
//        dump($p['name']);exit;
//        dump($res);exit;
        $data = [
            'title' => $p['title'],
            'name' => $p['name'],
            'status' => $p['status'],
            'pid' => $p['pid']
        ];
//        dump($data);exit;
        if (!in_array($p['name'], $res)) {
            $result = Db::name("node")->where('id', $id)->update($data);
            if ($result) {
                // var_dump($data);
                // 执行添加
                return $this->success('编辑成功', url('admin/Permission/index'));
            }else{
                return $this->error('尚未做更改!');
            }
        }
        else {
            return $this->error('编辑失败');
        }
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function delete($id)
    {
//        dump($id);exit;
        $result = Db::name('node')->delete($id);
        if ($result > 0) {
            $info['status'] = true;
            $info['id'] = $id;
            $info['msg'] = 'ID为: ' . $id . '的用户删除成功!';
        } else {
            $info['status'] = false;
            $info['id'] = $id;
            $info['msg'] = 'ID为: ' . $id . '的用户删除失败!';
        }
        return json($info);
    }

    public function offStatus($id)
    {
//        dump($id);exit;
        $data = [
            'status' => 0
        ];
//        dump($data);exit;
        $result = Db::name("node")->where('id', $id)->update($data);
        if ($result > 0) {
            $info['id'] = $id;
            $info['status'] = true;
        } else {
            $info['id'] = $id;
            $info['status'] = false;
        }
        return json($info);
    }

    public function onStatus($id)
    {
//        dump($id);
//        exit;
        $data = [
            'status' => 1
        ];
        $result = Db::name("node")->where('id', $id)->update($data);
        if ($result > 0) {
            $info['id'] = $id;
            $info['status'] = true;
        } else {
            $info['id'] = $id;
            $info['status'] = false;
        }
        return json($info);
    }
}
